Method for Generating Downlink Beamforming Weighting Vectors

ABSTRACT

Techniques are provided for generating downlink beamforming weighting vectors by using channel information about one or more uplink sub-channels in a wireless communications network in the case of frequency mismatch between downlink channels and uplink channels for a specific user. The method comprises calculating an average channel covariance matrix of one or more uplink sub-channels assigned to a specific user, dividing a sector of a cell into a plurality of sub-sectors, transforming the average channel covariance matrix into a plurality of average sub-sector channel covariance matrices and obtaining an average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors, selecting direction of arrival (DOA) sub-sectors from the plurality of sub-sectors by using the plurality of average sub-sector channel covariance matrices, and computing a time delay sequence for the DOA sub-sectors, and generating downlink beamforming weighting vectors by using the average uplink beamforming weighting vectors corresponding to the DOA sub-sectors and the information derived from the time delay sequence.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of U.S. Provisional Application Ser. 60/902,693, which was filed on Feb. 22, 2007, the entire contents of which is hereby incorporated by reference.

BACKGROUND

Data are transmitted via a broadband channel in broadband wireless communications networks employing multiple access methods such as time division duplex (TDD) Code Division Multiple Access (CDMA) and TDD Orthogonal Frequency Division Multiple Access (OFDMA). A broadband channel can be divided into a plurality of sub-channels, each of which comprises a frequency band with distinct channel characteristics.

In a TDD CDMA or OFDMA network, the channel characteristics of downlink channels may be different from those of uplink channels. One of the reasons is that downlink channels and uplink channels are assigned in different frequency bands for a specific user. Another reason is that there is frequency mismatch between downlink channels and uplink channels. As a result, a base transceiver station (BTS) has no means to retrieve downlink channel information from messages transmitted via uplink channels. More specifically, it is difficult for a BTS to generate downlink beamforming weighting vectors for downlink channels without explicitly receiving channel information about the downlink channels. However, it is undesirable for a BTS to explicitly send channel information about downlink channels as the transmission of channel information consumes bandwidth. Therefore, it is crucial for a wireless communications network to be able to employ a method that can generate downlink beamforming weighting vectors in the case of frequency mismatch between downlink channels and uplink channels for a specific user.

In a TDD network, an uplink channel coefficient matrix is strongly correlated with a downlink channel coefficient matrix. Therefore, an uplink channel coefficient matrix can be transformed into a downlink channel coefficient matrix using the correlation between the two matrices. Specifically, downlink beamforming weighting vectors can be generated by using the uplink channel coefficient matrix.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a tile defined in a time-and-frequency domain.

FIG. 2 is an example of a flow diagram illustrating a method for generating downlink beamforming weighting vectors.

FIG. 3 is a block diagram of a BTS communicating with a mobile transceiver device using the techniques shown in FIG. 2.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings. The description includes non-limiting examples of embodiments.

Overview

Disclosed herein is a method for generating downlink beamforming weighting vectors by using channel information about one or more uplink sub-channels in a wireless communications network. The method involves calculating an average channel covariance matrix of one or more up link sub-channels assigned to a specific user. A sector of a cell is divided into multiple sub-sectors. The average channel covariance matrix is transformed into a plurality of average sub-sector channel covariance matrices in order to produce an average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors. Direction of arrival (DOA) sub-sectors are selected from the plurality of sub-sectors by using the plurality of average sub-sector channel covariance matrices, and a time delay sequence for the DOA sub-sectors is computed. The downlink beamforming weighting vectors are generated by using the average uplink beamforming weighting vectors corresponding to the DOA sub-sectors and the information derived from the time delay sequence.

The disclosed method is computationally simple and it is not affected by multi-path interference. The method is applicable to wireless communications networks in which downlink and uplink sub-channels are assigned to different frequency bands. For example, the network may be one that employs time division duplex (TDD) Orthogonal Frequency Division Multiple Access (OFDMA).

A broadband uplink channel comprises a plurality of subcarriers. An uplink signal is transmitted in a tile comprising a number of subcarriers over several time instances. A tile, as illustrated in FIG. 1, is a block defined in a time-and-frequency domain. For example, in IEEE 802.16e specification, a tile 120 in an uplink sub-channel consists of four subcarriers 110 over three symbols, and each symbol (122, 124, and 126) is transmitted at one time instance. Subcarriers 112 (shaded) carry pilot signal and subcarriers 114 (black) carry data. A user is assigned one or more uplink sub-channels, each of which includes six tiles. The disclosed method is applied to every user in a wireless communications network.

FIG. 2 is a flow diagram illustrating a method for generating downlink beamforming weighting vectors in accordance with one embodiment. The method includes the following steps: calculate an average channel covariance matrix of one or more uplink sub-channels assigned to a user (210), generate an average beamforming weighting vector group corresponding to all sub-sectors (220), determine the direction of arrival (DOA) sub-sectors of uplink signals (230), compute the frequency difference and mean angle difference between a reference tile and each of the remaining tiles (240), determine two parameters (250), and generate beamforming weighting vectors for a downlink subcarrier (260). Each step is described in detail below.

Step 210 starts with the calculation of an instantaneous channel covariance matrix. Let M be the number of antennas on a BTS and S_(j,q)(m) denote received frequency domain signals of the j-th band of the q-th symbol from the m-th antenna, where 1≦m≦M. Note that S_(j,q)(m) is a scalar.

An instantaneous channel covariance matrix of subcarrier i in tile n is denoted as R_(i) _(n) , and it is defined by the following equation:

${R_{i_{n}} = {\frac{1}{12}{\sum{\begin{bmatrix} {S_{j,q}(1)} \\ {S_{j,q}(2)} \\ \vdots \\ {S_{j,q}(M)} \end{bmatrix}\begin{bmatrix} {S_{j,q}(1)} \\ {S_{j,q}(2)} \\ \vdots \\ {S_{j,q}(M)} \end{bmatrix}}^{H}}}},$

where H is a Hermitian operator; M is the number of antennas on a BTS; and i₁, i₂, . . . , i_(J) are indices of frequency bands. Let the size of Fast Fourier Transform (FFT) be L, where 1≦i₁≦i₂< . . . ≦i≦L. The calculation of an instantaneous channel covariance matrix is performed for all subcarriers in the tiles of the one or more sub-channels assigned to a specific user.

Specifically, {R_(i) _(n) }_(n=1) ^(J) denotes a group of instantaneous channel covariance matrices of subcarrier i, corresponding to a specific user, where J is the number of tiles assigned to the user, is completed.

For every instantaneous channel covariance matrix R_(i) _(n) , a principle eigenvector U_(i) _(n) (a column vector) and a maximum eigenvalue λ_(i) _(n) are obtained by using singular value decomposition (SVD). Then, a channel covariance matrix of subcarrier i in tile n, denoted as {circumflex over (R)}_(i) _(n) , is generated using U_(i) _(n) and λ_(i) _(n) , and it is defined by any of the following equations: {circumflex over (R)}_(i) _(n) =U_(i) _(n) (U_(i) _(n) )^(H), {circumflex over (R)}_(i) _(n) =|λ_(i) _(n) |U_(i) _(n) (U_(i) _(n) )^(H), or {circumflex over (R)}_(i) _(n) =|λ_(i) _(n) |²U_(i) _(n) (U_(i) _(n) )^(H). Next, an average channel covariance matrix R of all tiles of one or more sub-channels assigned to a specific user is obtained by summing the channel covariance matrices' of all tiles and it is defined by the following equation:

${\overset{\_}{R} = {\sum\limits_{n = 1}^{J}{\hat{R}}_{i_{n}}}},$

where {circumflex over (R)}_(i) _(n) is a channel covariance matrix.

In step 220, a cell in a wireless communications network is divided into one or more sectors, and each sector is further divided into a predetermined number (N_(s)) of sub-sectors. Next, a sub-sector channel covariance matrix of subcarrier i in tile n is obtained for each sub-sector z, and it is defined by the following equation: {circumflex over (R)}_(i) _(n,z) ={circumflex over (R)}_(i) _(n) T_(z), where T_(z) is a predetermined transformation matrix of sub-sector z; and 1≦z≦N. The transformation matrix T_(z) is defined by T_(z)=({tilde over (Q)}_(UL) ^(H){tilde over (Q)}_(UL))⁻¹{tilde over (Q)}_(UL) ^(H)B_(i)Q_(UL,i), where Q_(UL)(θ) is an uplink array response matrix. The uplink array response matrix, Q_(UL)(θ) is calculated according to the following equation: Q_(UL)(θ)=A(θ, λ_(UL))A^(H)(θ, λ_(UL)), where λ is the wavelength of an uplink subcarrier, A(θ, λ_(UL)) is an uplink array steering vector for the DOA, denoted as θ.

The matrix {tilde over (Q)}_(UL) is a whole range uplink matrix and the matrix {tilde over (Q)}_(UL,i) is a partial range uplink matrix. The matrix {tilde over (Q)}_(UL) is defined by

${\overset{\sim}{Q}}_{UL} = \begin{bmatrix} {Q_{UL}\left( \theta_{1} \right)} \\ {Q_{UL}\left( {\Delta + \theta_{1}} \right)} \\ \vdots \\ {Q_{UL}\left( {{\left( {N_{a} - 1} \right)\Delta} + \theta_{1}} \right)} \end{bmatrix}$

where N_(a) is the total number of angles, and

$\Delta = \frac{\theta_{N + 1} - \theta_{1}}{N_{a} - 1}$

is the step of angles.

The matrices {tilde over (Q)}_(UL,1) and {tilde over (Q)}_(UL,i) are defined by

${\overset{\sim}{Q}}_{{UL},1} = {\begin{bmatrix} {Q_{UL}\left( \theta_{1} \right)} \\ {Q_{UL}\left( {\Delta + \theta_{1}} \right)} \\ \vdots \\ {Q_{UL}\left( {\frac{\left( {N_{a} - 1} \right)\Delta}{N_{s}} + \theta_{1}} \right)} \end{bmatrix}\mspace{14mu} {and}}$ ${{\overset{\sim}{Q}}_{{UL},i} = \begin{bmatrix} {Q_{UL}\left( \theta_{i} \right)} \\ {Q_{UL}\left( {\Delta + \theta_{i}} \right)} \\ \vdots \\ {Q_{UL}\left( {\frac{\left( {N_{a} - 1} \right)\Delta}{N_{s}} - \Delta + \theta_{i}} \right)} \end{bmatrix}},$

for i>1, where θ₁ is the initial value of angle (the direction of one edge of sector),

${\theta_{i} = {\theta_{1} + {\left( {i - 1} \right)\frac{\left( {N_{a} - 1} \right)\Delta}{N_{s}}} + \Delta}},$

and N_(s) is the number of sub-sectors.

The parameter B_(i) is defined as:

$B_{i} = \begin{bmatrix} 0_{{({M{({a + {{sign}{({i - 1})}}})}})} \times {(\frac{{({N_{a} - 1})}M}{N_{s}})}} \\ I_{{(\frac{{({N_{a} - 1})}M}{N_{s}})} \times {(\frac{{({N_{a} - 1})}M}{N_{s}})}} \\ 0_{{({Mb})} \times {(\frac{{({N_{a} - 1})}M}{N_{s}})}} \end{bmatrix}$

where I is identity matrix and 0 is zero matrix. If i=1, then a=0 and

$b = {\left( {N_{s} - 1} \right){\frac{\left( {N_{a} - 1} \right)}{N_{s}}.}}$

If i>1, then

$a = {{\left( {i - 1} \right)\frac{\left( {N_{a} - 1} \right)}{N_{s}}\mspace{14mu} {and}\mspace{14mu} b} = {\left( {N_{s} - i} \right){\frac{\left( {N_{a} - 1} \right)}{N_{s}}.}}}$

A beamforming weighting vector group for subcarrier i in tile n of all sub-sectors is denoted as {U_(i) _(n.) ₁, U_(i) _(n.) ₂, . . . , U_(i) _(n.) _(N) _(s) }, where U_(i) _(n.) _(,z) is the first row vector of a sub-sector channel covariance matrix of sub-sector z, denoted as {circumflex over (R)}_(i) _(n,z) . An average sub-sector channel covariance matrix R _(z) is obtained based on the following equation: R _(z)= RT_(z), where R is an average channel covariance matrix; T_(z) is a predetermined transformation matrix of sub-sector z; and 1≦z≦N_(s). An average beamforming weighting vector group corresponding to all sub-sectors is thus generated and it is denoted as {Ū₁, Ū₂, . . . Ū_(N) _(s) ,}, where Ū_(z) is the first row vector of an average sub-sector channel covariance matrix R _(z).

Step 230 starts with calculating the trace (i.e., the sum of diagonal elements) of each sub-sector by using the average sub-sector channel covariance matrix R _(z). Then the absolute values of the traces of all sub-sectors are used to form an energy array {C₁, C₂, . . . , C_(N) _(s) }, where C_(j) is the absolute value of the trace of sub-sector j. Next, a predetermined rule is applied to select K C_(j)'s from the energy array {C₁, C₂, . . . , C_(N) _(s) }. These K C_(j)'s are sorted to form a DOA energy array {C_(j) ₁ , C_(j) ₂ , . . . C_(j) _(k) }, where j is the index of a sub-sector; 1≦j≦N_(s); and C_(j) ₁ ≧C_(j) ₂ , . . . C_(j) _(K) . The sub-sectors included in the DOA energy array are designated as DOA sub-sectors.

In one embodiment, the predetermined rule requires that C_(j) be included in the DOA energy array if

${C_{j} \geq {f_{1}\frac{1}{N_{s}}{\sum\limits_{n = 1}^{N_{s}}C_{n}}}},$

where f₁ is a positive constant parameter (e.g., f₁=0.1). Let C_(j) _(max) =C_(j) ₁ , where j_(max) is the index of the DOA sub-sector with the largest trace.

Step 240 begins with selecting a subcarrier in a tile as the reference subcarrier for each of the sub-sectors in the DOA energy array. The tile including the reference subcarrier is the reference tile. Then, the frequency of the reference subcarrier is chosen as the reference frequency. Next, the frequency difference and mean angle difference between the reference tile and each of the remaining tiles are calculated. In one embodiment, the frequency of the first subcarrier in the first tile is chosen as the reference frequency. The frequency difference between the reference tile and each of the remaining tiles is computed using the following equation: B(n−1)=i_(n)−i₁, where i_(n), is the frequency of a subcarrier in tile n; i₁ is the reference frequency of tile 1; and 2≦n≦J.

In addition, a mean angle difference between the reference tile and each of the remaining tiles in DOA energy array is computed based on the following equation: φ(n−1,k)=mean(angle((U_(i) _(n) _(,j) _(max) ./U_(i) _(n) _(,j) _(k) )./(U_(i) ₁ _(,j) _(max) ./U_(i) ₁ _(,j) _(k) ))), where ./represents the vector division operator; angle (.) returns the value of a phase; mean(.) returns the mean value of a phase; 2≦n≦J; and 2≦k≦K.

In step 250, two parameters,

and

are determined. A predetermined range vector A_(range)=[A, . . . , B], where A ad B are integers, is computed according to the maximum multi-path delay. The range vector defines the range of a phase. In one embodiment, A=−5 and B=15. In another embodiment, A=−15 and B=15. An angle between two sub-sectors, denoted as S_(angle)(k,:), represents a time delay sequence of these sub-sectors, which is calculated using a grid search method and is defined by the following equation:

${{S_{angle}\left( {k,\text{:}} \right)} = {\sum\limits_{i = 1}^{J - 1}{{{angle}\left( {\exp \left( {{- \sqrt{- 1}}*\left( {{2\; \pi*{B(i)}*{A_{range}/L}} + {\varphi \left( {i,k} \right)}} \right)} \right)} \right)}}}},$

where k is the index of DOA sub-sector; B(i) is a frequency difference between a reference frequency and a subcarrier in tile i; L is the size of FFT; and φ(i,k) is a mean angle difference.

After the minimum value of the time delay sequence vector S_(angle)(k,:) and the sub-sectors k are identified, the two parameters are obtained based on the following equations: β(k)=S_(angle)(k,τ_(min)), where τ_(min) is the index of the minimum value of S_(angle)(k,:), and α(k)=A_(range)(τ_(min)).

Step 260 starts with initializing a beamforming weighting vector of a downlink subcarrier. Initialization can be performed in a number of ways. In one embodiment, a beamforming weighting vector for a downlink subcarrier, denoted as U, is initialized according to the following equation: U_(y)=U_(i) _(close) _(,j) _(max) , where U_(i) _(clost) _(,j) _(max) is a beamforming weighting vector for an uplink subcarrier i_(close) of the DOA sub-sector j_(max) and i_(close) is the index of a subcarrier whose frequency is closest to that of subcarrier y.

A threshold value f₂ is chosen based on the received SNR of each antenna on the BTS. For example, if the received SNR of each antenna is ≦0 dB, then

${f_{2} = {\frac{2}{3}J}},$

where J is the number of tiles designated to a specific user. If the received SNR of each antenna is >0 dB, then f₂=∞.

For each of the remaining K−1 DOA sub-sectors, k, where 2≦k≦K, the beamforming weighting vector U_(y) for downlink subcarrier y is updated according to the following equation: U_(y)=U_(y)+U_(i) _(close) _(,j) _(k) exp(√{square root over (−1)}*2π*(y−i_(close))*α(k)/L) if β(k)<f₂; otherwise, U_(y) is not updated.

After all DOA sub-sectors are considered, U_(y) is normalized to generate the beamforming weighting vector for the downlink subcarrier y,

${U_{y} = \frac{{conjugate}\left( U_{y} \right)}{{norm}\left( U_{y} \right)}},$

where conjugate(.) is the conjugate operator and the norm(.) is the Euclidean norm operator.

In another embodiment, calculating the beamforming weighting vector U_(y) for downlink subcarrier y is achieved by initializing U_(y) according to the following equation: U_(y)=abs(Ū_(j) _(max) )*exp(√{square root over (−1)}*angle(U_(i) _(close) _(,j) _(max) )), where abs(.) is the absolute value operator. The beamforming weighting vector calculated using the above equation achieves better throughput when the received SNR is less than 0 dB.

For each of the remaining K−1 DOA sub-sectors, k, where 2≦k≦K, if β(k)≦f₂, the beamforming weighting vector U_(y) of downlink subcarrier y is updated according to the following equation: U_(y)=U_(y)+abs(Ū_(j) _(k) )*exp(√{square root over (−1)}*angle(U_(i) _(close) _(,j) _(k) exp(√{square root over (−1)}*2π(y−i_(close))α(k)/L))). Otherwise, U_(y) is not updated.

After all DOA sub-sectors are considered, U_(y) is normalized to generate the beamforming weighting vector for downlink subcarrier y,

${U_{y} = \frac{{conjugate}\left( U_{y} \right)}{{norm}\left( U_{y} \right)}},$

where conjugate(.) is the conjugate operator and the norm(.) is the Euclidean norm operator.

FIG. 3 illustrates a wireless communication network comprising a BTS 300 and a mobile wireless transceiver device 400. A single mobile wireless transceiver device 400 is shown for simplicity but it should be understood that typically there are a plurality of mobile wireless transceiver devices that communicate with the BTS 300. In general, the mobile wireless transceiver device 400 is any destination device (i.e., “user”) to which the BTS 300 transmits signals.

FIG. 3 also shows an example of a simple block diagram of the BTS 300 as comprising an RF transceivers block 310 and a baseband signal processing block 320. The RF transceivers block 310 receives RF signals transmitted to the BTS 300 from mobile wireless transceiver devices, e.g., device 400, that are detected by antennas 305(1)-305(M), and downconverts those signals to baseband signals. Likewise, the RF transceivers block 310 upconverts baseband transmit signals for transmission by the antennas 305(1)-305(M). The baseband signal processing block 320 performs the baseband modulation and formatted associated with the particular modulation scheme employed, and also performs the method depicted in FIG. 2 for generating downlink beamforming weighting vectors. The baseband signal processing block 320 may be implemented by logic encoded in one or more tangible media (e.g., embedded logic such as an application specific IC, digital signal processor instructions, software that is executed by a processor, etc.).

The foregoing provides many different embodiments for implementing different features of the system and method described herein. Specific examples of components and processes are merely examples and are not intended to be limiting. 

1. A method comprising: calculating an average channel covariance matrix of one or more uplink sub-channels assigned to a user in a wireless communication network; dividing a sector of a cell into a plurality of sub-sectors; transforming the average channel covariance matrix into a plurality of average sub-sector channel covariance matrices and obtaining therefrom an average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors; selecting direction of arrival (DOA) sub-sectors from the plurality of sub-sectors by using the plurality of average sub-sector channel covariance matrices; computing a time delay sequence for the DOA sub-sectors; and generating downlink beamforming weighting vectors by using the average uplink beamforming weighting vectors corresponding to the DOA sub-sectors and the information derived from the time delay sequence.
 2. The method of claim 1, wherein calculating the average channel covariance matrix further comprises: computing instantaneous channel covariance matrices of a plurality of subcarriers of the one or more uplink sub-channels comprising a plurality of tiles, each of which includes a plurality of subcarriers over more than one time instance; generating channel covariance matrices of the plurality of subcarriers; and obtaining the average channel covariance matrix of the one or more sub-channels assigned to the specific user.
 3. The method of claim 2, wherein an instantaneous channel covariance matrix is defined by ${R_{i_{n}} = {\frac{1}{12}{\sum{\begin{bmatrix} {S_{j,q}(1)} \\ {S_{j,q}(2)} \\ \vdots \\ {S_{j,q}(M)} \end{bmatrix}\begin{bmatrix} {S_{j,q}(1)} \\ {S_{j,q}(2)} \\ \vdots \\ {S_{j,q}(M)} \end{bmatrix}}^{H}}}},$ where H is a Hermitian operator; M is the number of antennas on a BTS; i₁, i₂, . . . , i_(j) are indices of frequency bands; and S_(j,q)(m) denotes received frequency domain signals of the j-th band of the q-th symbol from the m-th antenna, where 1≦m≦M.
 4. The method of claim 2, wherein a channel covariance matrix of subcarrier i in tile n, denoted as {circumflex over (R)}_(i) _(n) , is generated based on either {circumflex over (R)}_(i) _(n) =U_(i) _(n) (U_(i) _(n) )^(H), {circumflex over (R)}_(i) _(n) =|λ_(i) _(n) |U_(i) _(n) (U_(i) _(n) )^(H), or {circumflex over (R)}_(i) _(n) =|λ_(i) _(n) |²U_(i) _(n) (U_(i) _(n) )^(H), where H is a Hermitian operator.
 5. The method of claim 2, wherein the average channel covariance matrix is obtained by summing the channel covariance matrices of all tiles based on the following equation: ${\overset{\_}{R} = {\sum\limits_{n = 1}^{J}{\hat{R}}_{i_{n}}}},$ where {circumflex over (R)}_(i) _(n) is a channel covariance matrix.
 6. The method of claim 1, wherein an average sub-sector channel covariance matrix R _(z) is obtained based on the following equation: R _(z)= RT_(z), where T_(z) is a predetermined transformation matrix of sub-sector z; 1≦z≦N_(s) and R is an average channel covariance matrix.
 7. The method of claim 1, wherein the average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors is denoted as {Ū, Ū₂ . . . , Ū_(N) _(N) ,}, where Ū_(z) is the first row vector of an average sub-sector channel covariance matrix R _(z).
 8. The method of claim 1, wherein selecting the DOA sub-sectors further comprises: calculating traces of the plurality of sub-sectors by using the average sub-sector channel covariance matrices; forming an energy array {C₁, C₂, . . . , C_(N) _(s) }, where C_(j) is the absolute value of the trace of sub-sector j; and determining DOA sub-sectors to form a DOA energy array in according with a predetermined rule.
 9. The method of claim 8, wherein the predetermined rule determines that a sector is to be included in the DOA energy array if ${C_{j} \geq {f_{1}\frac{1}{N_{s}}{\sum\limits_{n = 1}^{N_{s}}C_{n}}}},$ where f₁ is a positive constant parameter.
 10. The method of claim 9, wherein f₁ equals to 0.1.
 11. The method of claim 1, wherein the time delay sequence is computed by using a grid search method according to the following equation: ${{S_{angle}\left( {k,\text{:}} \right)} = {\sum\limits_{i = 1}^{J - 1}{{{angle}\left( {\exp \left( {{- \sqrt{- 1}}*\left( {{2\pi*{B(i)}*{A_{range}/L}} + {\varphi \left( {i,k} \right)}} \right)} \right)} \right)}}}},$ where k is the index of DOA sub-sector; B(i) is a frequency difference between a reference subcarrier and a subcarrier in tile i; J is the number of tiles; angle (.) is an operator returning a phase angle; and φ(i,k) is a mean angle difference.
 12. The method of claim 11, wherein the frequency of the reference subcarrier in a tile is selected as the reference frequency of a DOA sub-sector and the tile is designed as the reference tile.
 13. The method of claim 12, wherein the frequency of the first subcarrier in the first tile is chosen as the reference frequency.
 14. The method of claim 11, wherein the mean angle difference between the reference tile and each of the remaining tiles in the DOA energy array is computed based on the following equation: φ(n−1, k)=mean(angle((U_(i) _(n) _(,j) _(max) ./U_(i) ₁ _(,j) _(k) ))), where 2≦n≦J; 2≦k≦K ./ represents the vector division operator; angle (.) returns the value of a phase; mean(.) returns the mean value of a phases; and U_(i) _(n.) _(,z) is a beamforming weighting vector of subcarrier i in tile n of sub-sector z.
 15. The method of claim 1, wherein generating the downlink beamforming weighting vectors further comprises: determining β(k) in according with the following equation: β(k)=S_(angle)(k,τ_(min)), and τ_(min) is the index of the minimum value of S_(angle)(k,:); obtaining α(k) by using the following equation: α(k)=A_(range)(τ_(min)), where A_(range)(.) is a predetermined range vector; and computing a beamforming weighting vector for each downlink subcarrier U_(y).
 16. The method of claim 15, wherein computing the beamforming weighting vector further comprises: initializing a beamforming weighting vector for a downlink subcarrier U_(y) in according with the following equation: U_(y)=U_(i) _(close) _(,j) _(max) , where U_(i) _(close) _(,j) _(max) is a beamforming weighting vector for an uplink subcarrier i_(close) of the DOA sub-sector j_(max) and close is the index of a subcarrier whose frequency is closest to that of subcarrier y; updating the beamforming weighting vector for the downlink subcarrier U_(y) by taking into account all DOA sub-sectors in according with the following equation: U_(y)=U_(y)+U_(i) _(close) _(,j) _(k) exp(√{square root over (−1)}*2π*(y−i_(close))*α(k)/L) if β(k) is less than a predetermined factor; and normalizing the beamforming weighting vector for the downlink subcarrier U_(y) in according with the following equation: ${U_{y} = \frac{{conjugate}\left( U_{y} \right)}{{norm}\left( U_{y} \right)}},$ where conjugate(.) is the conjugate operator and the norm(.) is the Euclidean norm operator.
 17. The method of claim 16, wherein the predetermined factor is chosen based on the received SNR of each antenna.
 18. The method of claim 17, wherein the predetermined factor equals to $\frac{2}{3}J$ if SNR of each antenna is ≦0 dB, where J is the number of tiles of the one or more sub-channels.
 19. The method of claim 17, wherein the predetermined factor is infinity if SNR of each antenna is >0 dB.
 20. The method of claim 15, wherein computing the beamforming weighting vector further comprises: initializing a beamforming weighting vector for a downlink subcarrier U_(y) in according with the following equation: U_(y)=abs(Ū_(j) _(max) )*exp(√{square root over (−1)}*angle(U_(i) _(close) _(,j) _(max) )), where abs(.) is the absolute value operator; updating the beamforming weighting vector for the downlink subcarrier U_(y) by taking into account all DOA sub-sectors in according with the following equation: U_(y)=U_(y)+abs(Ū_(j) _(k) )*exp(√{square root over (−1)}*angle(U_(i) _(close) _(,j) _(k) exp(√{square root over (−1)}*2π(y−i_(close))α(k)/L))) if the β(k) is less than a predetermined factor; and normalizing the beamforming weighting vector for the downlink subcarrier U_(y) in according with the following equation: ${U_{y} = \frac{{conjugate}\left( U_{y} \right)}{{norm}\left( U_{y} \right)}},$ where conjugate(.) is the conjugate operator and the norm(.) is the Euclidean norm operator.
 21. A device comprising: a plurality of antennas configured to receive and transmit signals; a radio transceiver block coupled to the plurality of antennas and configured to downconvert signals received by the plurality of antenna to produce baseband receive signals and configured to upconvert baseband transmit signals for transmission by the plurality of antennas; a processor coupled to the radio transceiver block, wherein the processor is configured to generate downlink beamforming weighting vectors that are applied to the baseband transmit signals for transmission to a destination device, wherein the processor is configured to generate downlink weighting vectors by: calculating an average channel covariance matrix of one or more uplink sub-channels assigned to the user in a wireless communication network; dividing a sector of a cell into a plurality of sub-sectors; transforming the average channel covariance matrix into a plurality of average sub-sector channel covariance matrices and obtaining therefrom an average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors; selecting direction of arrival (DOA) sub-sectors from the plurality of sub-sectors by using the plurality of average sub-sector channel covariance matrices; computing a time delay sequence for the DOA sub-sectors; and generating downlink beamforming weighting vectors by using the average uplink beamforming weighting vectors corresponding to the DOA sub-sectors and the information derived from the time delay sequence.
 22. Logic encoded in one or more tangible media for execution and when executed operable to enable a device in a wireless communication network to generate downlink beamforming weighting vectors by: calculating an average channel covariance matrix of one or more uplink sub-channels assigned to a user in a wireless communication network; dividing a sector of a cell into a plurality of sub-sectors; transforming the average channel covariance matrix into a plurality of average sub-sector channel covariance matrices and obtaining therefrom an average uplink beamforming weighting vector group corresponding to the plurality of sub-sectors; selecting direction of arrival (DOA) sub-sectors from the plurality of sub-sectors by using the plurality of average sub-sector channel covariance matrices; computing a time delay sequence for the DOA sub-sectors; and generating downlink beamforming weighting vectors by using the average uplink beamforming weighting vectors corresponding to the DOA sub-sectors and the information derived from the time delay sequence. 